package org.coopac.controller.plataforma;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;

import org.coopac.model.CoopacDireccionPersona;
import org.coopac.model.CoopacDocumentoPersona;
import org.coopac.model.CoopacPersona;
import org.coopac.model.CoopacSocio;
import org.coopac.model.CoopacTelefonoPersona;
import org.coopac.model.CoopacTipoMaestro;
import org.coopac.model.CoopacUbigeo;
import org.coopac.service.IDireccionPersonaService;
import org.coopac.service.IDocumentoPersonaService;
import org.coopac.service.IPersonaService;
import org.coopac.service.ISocioService;
import org.coopac.service.ITelefonoPersonaService;
import org.coopac.service.ITipoMaestroService;
import org.coopac.service.IUbigeoService;

@ManagedBean(name = "ahorro" )
@SessionScoped

public class AhorroLibreAPController {
	
	@ManagedProperty(value = "#{personaService}")
	IPersonaService personaService;
	CoopacPersona personaSOL, personaBEN;
	
	@ManagedProperty(value = "#{documentoPersonaService}")
	IDocumentoPersonaService documentoService;
	CoopacDocumentoPersona documentoPersonaSOL , documentoPersonaBEN;

	@ManagedProperty(value = "#{telefonoPersonaService}")
	ITelefonoPersonaService telefonoService;
	CoopacTelefonoPersona telefonoPersonaSOL , telefonoPersonaBEN;

	@ManagedProperty(value = "#{direccionPersonaService}")
	IDireccionPersonaService direccionService;
	CoopacDireccionPersona direccionPersonaSOL, direccionPersonaBEN;
	
	@ManagedProperty(value = "#{tipoMaestroService}")
	ITipoMaestroService tipoMaestroService;
	CoopacTipoMaestro tipoMaestroDocumentoSOL,tipoMaestroEstadoCivilSOL,tipoMaestroGradoEstudioSOL,tipoMaestroTipoTelefonoSOL,
	tipoMaestroTipoViviendaSOL,tipoMaestroTipoZonaSOL,tipoMaestroTipoViaSOL;
	CoopacTipoMaestro tipoMaestroDocumentoBEN,tipoMaestroEstadoCivilBEN,tipoMaestroGradoEstudioBEN,tipoMaestroTipoTelefonoBEN,
	tipoMaestroTipoViviendaBEN,tipoMaestroTipoZonaBEN,tipoMaestroTipoViaBEN;
	
	@ManagedProperty(value = "#{ubigeoService}")
	IUbigeoService 	ubigeoService;
	CoopacUbigeo ubigeoPersonaSOL, ubigeoPersonaBEN;
	
	CoopacUbigeo ubigeoPersonaSOLDep;
	CoopacUbigeo ubigeoPersonaSOLPro;
	CoopacUbigeo ubigeoPersonaSOLDis;
	CoopacUbigeo ubigeoPersonaBENDep;
	CoopacUbigeo ubigeoPersonaBENPro;
	CoopacUbigeo ubigeoPersonaBENDis;
	
	@ManagedProperty(value = "#{socioService}")
	ISocioService socioService;
	CoopacSocio socioSOL;
	
	String departamento;
	String provincia;
	String distrito;
	

	String dpd;
	
	Date fechaNacimientoFechaConstitucionPersonaSOL ;
	Date fechaNacimientoFechaConstitucionPersonaBEN ;
	SimpleDateFormat formatoDeFecha2 = new SimpleDateFormat("dd/MM/yyyy");
	
	public AhorroLibreAPController(){
		socioSOL = new CoopacSocio();
		personaSOL = new CoopacPersona();
		documentoPersonaSOL = new CoopacDocumentoPersona();
		telefonoPersonaSOL = new CoopacTelefonoPersona();
		direccionPersonaSOL = new CoopacDireccionPersona();
		tipoMaestroDocumentoSOL = new CoopacTipoMaestro();
		tipoMaestroEstadoCivilSOL = new CoopacTipoMaestro();
		tipoMaestroGradoEstudioSOL = new CoopacTipoMaestro();
		tipoMaestroTipoTelefonoSOL = new CoopacTipoMaestro();
		tipoMaestroTipoViaSOL = new CoopacTipoMaestro();
		tipoMaestroTipoViviendaSOL = new CoopacTipoMaestro();
		tipoMaestroTipoZonaSOL = new CoopacTipoMaestro();
		ubigeoPersonaSOL = new CoopacUbigeo();
		ubigeoPersonaSOLDep = new CoopacUbigeo();
		ubigeoPersonaSOLPro = new CoopacUbigeo();
		ubigeoPersonaSOLDis = new CoopacUbigeo();
		
		personaBEN = new CoopacPersona();
		documentoPersonaBEN = new CoopacDocumentoPersona();
		telefonoPersonaBEN = new CoopacTelefonoPersona();
		direccionPersonaBEN = new CoopacDireccionPersona();
		tipoMaestroDocumentoBEN = new CoopacTipoMaestro();
		tipoMaestroEstadoCivilBEN = new CoopacTipoMaestro();
		tipoMaestroGradoEstudioBEN = new CoopacTipoMaestro();
		tipoMaestroTipoTelefonoBEN = new CoopacTipoMaestro();
		tipoMaestroTipoViaBEN = new CoopacTipoMaestro();
		tipoMaestroTipoViviendaBEN = new CoopacTipoMaestro();
		tipoMaestroTipoZonaBEN = new CoopacTipoMaestro();
		ubigeoPersonaBEN = new CoopacUbigeo();
		ubigeoPersonaBENDep = new CoopacUbigeo();
		ubigeoPersonaBENPro = new CoopacUbigeo();
		ubigeoPersonaBENDis = new CoopacUbigeo();
		
	}
	

	public String getDpd() {
		return dpd;
	}

	public void setDpd(String dpd) {
		this.dpd = dpd;
	}

	public String getDepartamento() {
		return departamento;
	}

	public void setDepartamento(String departamento) {
		this.departamento = departamento;
	}

	public String getProvincia() {
		return provincia;
	}

	public void setProvincia(String provincia) {
		this.provincia = provincia;
	}

	public String getDistrito() {
		return distrito;
	}

	public void setDistrito(String distrito) {
		this.distrito = distrito;
	}

	
	
	public Date getFechaNacimientoFechaConstitucionPersonaBEN() {
		return fechaNacimientoFechaConstitucionPersonaBEN;
	}

	public void setFechaNacimientoFechaConstitucionPersonaBEN(
			Date fechaNacimientoFechaConstitucionPersonaBEN) {
		this.fechaNacimientoFechaConstitucionPersonaBEN = fechaNacimientoFechaConstitucionPersonaBEN;
	}

	
	
	
	
	
	public CoopacUbigeo getUbigeoPersonaSOLDep() {
		return ubigeoPersonaSOLDep;
	}

	public void setUbigeoPersonaSOLDep(CoopacUbigeo ubigeoPersonaSOLDep) {
		this.ubigeoPersonaSOLDep = ubigeoPersonaSOLDep;
	}

	public CoopacUbigeo getUbigeoPersonaSOLPro() {
		return ubigeoPersonaSOLPro;
	}

	public void setUbigeoPersonaSOLPro(CoopacUbigeo ubigeoPersonaSOLPro) {
		this.ubigeoPersonaSOLPro = ubigeoPersonaSOLPro;
	}

	public CoopacUbigeo getUbigeoPersonaSOLDis() {
		return ubigeoPersonaSOLDis;
	}

	public void setUbigeoPersonaSOLDis(CoopacUbigeo ubigeoPersonaSOLDis) {
		this.ubigeoPersonaSOLDis = ubigeoPersonaSOLDis;
	}

	String dniBuscado,socioBuscado;
	
	private boolean value1;
	private boolean value2;

	public boolean isValue2() {  
      return value2;  
  }  

	  public void setValue2(boolean value2) {  
	      this.value2 = value2;  
	  }  
	  
	public boolean isValue1() {
		return value1;
	}

	public void setValue1(boolean value1) {
		this.value1 = value1;
	}

		public void Change(){
			
			if( value2 == false){
				setValue2(true);
			}
			
			else{
				setValue2(false);
			}
			

		}
		
		
		List<String> listaPersonas;
		
		public List<String> autoCompletado(String query){
			List<String> results = new ArrayList<String>();  
	        listaPersonas = socioService.listarSocioPersonaDocumento();
	        int limite = 0;
			try {
		        for (String persona:listaPersonas) {  
		        	if(persona.toUpperCase().indexOf(query.toUpperCase())>=0 && limite<=10 && query!=" "){
		        		results.add(persona);
		        	}
		        	limite++;
		        }  
			} catch (Exception e) {
				// TODO: handle exception
			}
	          
	        return results; 
			  
		}
		
		List<String> listaPersonas2;
		
		public List<String> autoCompletado2(String query){
			List<String> results = new ArrayList<String>();  
			listaPersonas2 = personaService.listarPersonaDocumento();
	        int limite = 0;
			try {
		        for (String persona:listaPersonas2) {  
		        	if(persona.toUpperCase().indexOf(query.toUpperCase())>=0 && limite<=10 && query!=" "){
		        		results.add(persona);
		        	}
		        	limite++;
		        }  
			} catch (Exception e) {
				// TODO: handle exception
			}
	          
	        return results; 
			  
		}		
		
	
		String criterioBusqueda = "";
		/*BUSCAR PERSONA*/

		public String getCriterioBusqueda() {
			return criterioBusqueda;
		}

		public void setCriterioBusqueda(String criterioBusqueda) {
			this.criterioBusqueda = criterioBusqueda;
		}

		String criterioBusqueda2 = "";
		
		public List<String> getListaPersonas2() {
			return listaPersonas2;
		}

		public void setListaPersonas2(List<String> listaPersonas2) {
			this.listaPersonas2 = listaPersonas2;
		}

		public String getCriterioBusqueda2() {
			return criterioBusqueda2;
		}

		public void setCriterioBusqueda2(String criterioBusqueda2) {
			this.criterioBusqueda2 = criterioBusqueda2;
		}

		public ISocioService getSocioService() {
			return socioService;
		}

		public void setSocioService(ISocioService socioService) {
			this.socioService = socioService;
		}

		public CoopacSocio getSocioSOL() {
			return socioSOL;
		}

		public void setSocioSOL(CoopacSocio socioSOL) {
			this.socioSOL = socioSOL;
		}

		public List<String> getListaPersonas() {
			return listaPersonas;
		}

		public void setListaPersonas(List<String> listaPersonas) {
			this.listaPersonas = listaPersonas;
		}
		
		public void pintarBusquedaPersona(ActionEvent actionEvent) throws ParseException{
			System.out.println(criterioBusqueda);
				dniBuscado = criterioBusqueda.substring(criterioBusqueda.lastIndexOf("@DNI:")+6, criterioBusqueda.lastIndexOf("@SOC:")-1);
				socioBuscado = criterioBusqueda.substring(criterioBusqueda.lastIndexOf("@SOC:")+6, criterioBusqueda.length());

				documentoPersonaSOL = documentoService.getPersonaByDocumento(dniBuscado);
				tipoMaestroDocumentoSOL = documentoPersonaSOL.getCoopacTipoMaestro();
				System.out.println(documentoPersonaSOL.getNumero());
				personaSOL = personaService.getById(documentoPersonaSOL.getCoopacPersona().getIdPersona());
				
				//ubigeoPersonaSOL = direccionPersonaSOL.getCoopacUbigeo();
				for(CoopacTelefonoPersona coopacTelefonoPersona:telefonoService.listar()){
					if(coopacTelefonoPersona.getCoopacPersona().getIdPersona().equals(personaSOL.getIdPersona())){
						telefonoPersonaSOL = coopacTelefonoPersona;
						tipoMaestroTipoTelefonoSOL = telefonoPersonaSOL.getCoopacTipoMaestro();
					}
				}

				fechaNacimientoFechaConstitucionPersonaSOL = formatoDeFecha2.parse(personaSOL.getFechaNacimientoFechaConstitucion());
				
				if(personaSOL.getCoopacTipoMaestroByIdTipoMaestroEstadoCivil()!=null){
					tipoMaestroEstadoCivilSOL = personaSOL.getCoopacTipoMaestroByIdTipoMaestroEstadoCivil();
				}
				if(personaSOL.getCoopacTipoMaestroByIdTipoMaestroGradoEstudios()!=null){
					tipoMaestroGradoEstudioSOL = personaSOL.getCoopacTipoMaestroByIdTipoMaestroGradoEstudios();
				}
				
				for(CoopacDireccionPersona coopacDireccionPersona:direccionService.listar()){
					if(coopacDireccionPersona.getCoopacPersona().getIdPersona().equals(personaSOL.getIdPersona())){
						direccionPersonaSOL = coopacDireccionPersona;
						tipoMaestroTipoViviendaSOL = direccionPersonaSOL.getCoopacTipoMaestroByIdTipoMaestroVivienda();
						tipoMaestroTipoViaSOL = direccionPersonaSOL.getCoopacTipoMaestroByIdTipoMaestroVia();
						tipoMaestroTipoZonaSOL = direccionPersonaSOL.getCoopacTipoMaestroByIdTipoMaestroZona();
				
						
						setDpd(direccionPersonaSOL.getCoopacUbigeo().getIdUbigeo().toString()); 
						System.out.println(dpd);
						
						List<Integer> lista = new ArrayList<Integer>();
						lista =	divisionUbigeo(dpd);
						
						ubigeoPersonaSOLDep = ubigeoService.getById(lista.get(0));
						ubigeoPersonaSOLPro = ubigeoService.getById(lista.get(1));
						ubigeoPersonaSOLDis = ubigeoService.getById(lista.get(2));
						
						
						
					}
				}

			
			
		}

		public void pintarBusquedaPersona2(ActionEvent actionEvent) throws ParseException{
			System.out.println(criterioBusqueda2);
			dniBuscado = criterioBusqueda2.substring(criterioBusqueda2.lastIndexOf("-")+2, criterioBusqueda2.length());
				documentoPersonaBEN = documentoService.getPersonaByDocumento(dniBuscado);
				tipoMaestroDocumentoBEN = documentoPersonaBEN.getCoopacTipoMaestro();
				System.out.println(documentoPersonaBEN.getNumero());
				personaBEN = personaService.getById(documentoPersonaBEN.getCoopacPersona().getIdPersona());
				
				//ubigeoPersonaBEN = direccionPersonaBEN.getCoopacUbigeo();
				for(CoopacTelefonoPersona coopacTelefonoPersona:telefonoService.listar()){
					if(coopacTelefonoPersona.getCoopacPersona().getIdPersona().equals(personaBEN.getIdPersona())){
						telefonoPersonaBEN = coopacTelefonoPersona;
						tipoMaestroTipoTelefonoBEN = telefonoPersonaBEN.getCoopacTipoMaestro();
					}
				}

				fechaNacimientoFechaConstitucionPersonaBEN = formatoDeFecha2.parse(personaBEN.getFechaNacimientoFechaConstitucion());
				
				if(personaBEN.getCoopacTipoMaestroByIdTipoMaestroEstadoCivil()!=null){
					tipoMaestroEstadoCivilBEN = personaBEN.getCoopacTipoMaestroByIdTipoMaestroEstadoCivil();
				}
				if(personaBEN.getCoopacTipoMaestroByIdTipoMaestroGradoEstudios()!=null){
					tipoMaestroGradoEstudioBEN = personaBEN.getCoopacTipoMaestroByIdTipoMaestroGradoEstudios();
				}
				
				for(CoopacDireccionPersona coopacDireccionPersona:direccionService.listar()){
					if(coopacDireccionPersona.getCoopacPersona().getIdPersona().equals(personaBEN.getIdPersona())){
						direccionPersonaBEN = coopacDireccionPersona;
						tipoMaestroTipoViviendaBEN = direccionPersonaBEN.getCoopacTipoMaestroByIdTipoMaestroVivienda();
						tipoMaestroTipoViaBEN = direccionPersonaBEN.getCoopacTipoMaestroByIdTipoMaestroVia();
						tipoMaestroTipoZonaBEN = direccionPersonaBEN.getCoopacTipoMaestroByIdTipoMaestroZona();
				
						
						setDpd(direccionPersonaBEN.getCoopacUbigeo().getIdUbigeo().toString()); 
						System.out.println(dpd);
						
						List<Integer> lista = new ArrayList<Integer>();
						lista =	divisionUbigeo(dpd);
						
						ubigeoPersonaBENDep = ubigeoService.getById(lista.get(0));
						ubigeoPersonaBENPro = ubigeoService.getById(lista.get(1));
						ubigeoPersonaBENDis = ubigeoService.getById(lista.get(2));
						
						
						
					}
				}

			
			
		}
		
		public List<Integer> divisionUbigeo (String dpd){
			
			String dep,pro,dis;
			List<String> lista = new ArrayList<String>();
			
			for( int i = getDpd().length()-1 ; i >= 0 ; i--  ){
				System.out.println(getDpd().charAt(i));
				lista.add(Character.toString(getDpd().charAt(i)));
			}
			
			if(getDpd().length() == 6){
				dep = lista.get(5) + lista.get(4);
				pro = dep+lista.get(3) + lista.get(2);
				dis = pro+lista.get(1) + lista.get(0);
			}else{
				dep = lista.get(4);
				pro = dep+lista.get(3) + lista.get(2);
				dis = pro+lista.get(1) + lista.get(0);				
			}
			
			
			System.out.println(dep);
			System.out.println(pro);
			System.out.println(dis);
			
			List<Integer> divUbigeo = new ArrayList<Integer>();
			divUbigeo.add(Integer.parseInt(dep));
			divUbigeo.add(Integer.parseInt(pro));
			divUbigeo.add(Integer.parseInt(dis));
			
			return divUbigeo;
			
			
		}
		
		public IPersonaService getPersonaService() {
			return personaService;
		}

		public void setPersonaService(IPersonaService personaService) {
			this.personaService = personaService;
		}

		public CoopacPersona getPersonaSOL() {
			return personaSOL;
		}

		public void setPersonaSOL(CoopacPersona personaSOL) {
			this.personaSOL = personaSOL;
		}

		public IDocumentoPersonaService getDocumentoService() {
			return documentoService;
		}

		public void setDocumentoService(IDocumentoPersonaService documentoService) {
			this.documentoService = documentoService;
		}

		public CoopacDocumentoPersona getDocumentoPersonaSOL() {
			return documentoPersonaSOL;
		}

		public void setDocumentoPersonaSOL(CoopacDocumentoPersona documentoPersonaSOL) {
			this.documentoPersonaSOL = documentoPersonaSOL;
		}

		public ITelefonoPersonaService getTelefonoService() {
			return telefonoService;
		}

		public void setTelefonoService(ITelefonoPersonaService telefonoService) {
			this.telefonoService = telefonoService;
		}

		public CoopacTelefonoPersona getTelefonoPersonaSOL() {
			return telefonoPersonaSOL;
		}

		public void setTelefonoPersonaSOL(CoopacTelefonoPersona telefonoPersonaSOL) {
			this.telefonoPersonaSOL = telefonoPersonaSOL;
		}

		public IDireccionPersonaService getDireccionService() {
			return direccionService;
		}

		public void setDireccionService(IDireccionPersonaService direccionService) {
			this.direccionService = direccionService;
		}

		public CoopacDireccionPersona getDireccionPersonaSOL() {
			return direccionPersonaSOL;
		}

		public void setDireccionPersonaSOL(CoopacDireccionPersona direccionPersonaSOL) {
			this.direccionPersonaSOL = direccionPersonaSOL;
		}

		public ITipoMaestroService getTipoMaestroService() {
			return tipoMaestroService;
		}

		public void setTipoMaestroService(ITipoMaestroService tipoMaestroService) {
			this.tipoMaestroService = tipoMaestroService;
		}

		public CoopacTipoMaestro getTipoMaestroDocumentoSOL() {
			return tipoMaestroDocumentoSOL;
		}

		public void setTipoMaestroDocumentoSOL(CoopacTipoMaestro tipoMaestroDocumentoSOL) {
			this.tipoMaestroDocumentoSOL = tipoMaestroDocumentoSOL;
		}

		public CoopacTipoMaestro getTipoMaestroEstadoCivilSOL() {
			return tipoMaestroEstadoCivilSOL;
		}

		public void setTipoMaestroEstadoCivilSOL(
				CoopacTipoMaestro tipoMaestroEstadoCivilSOL) {
			this.tipoMaestroEstadoCivilSOL = tipoMaestroEstadoCivilSOL;
		}

		public CoopacTipoMaestro getTipoMaestroGradoEstudioSOL() {
			return tipoMaestroGradoEstudioSOL;
		}

		public void setTipoMaestroGradoEstudioSOL(
				CoopacTipoMaestro tipoMaestroGradoEstudioSOL) {
			this.tipoMaestroGradoEstudioSOL = tipoMaestroGradoEstudioSOL;
		}

		public CoopacTipoMaestro getTipoMaestroTipoTelefonoSOL() {
			return tipoMaestroTipoTelefonoSOL;
		}

		public void setTipoMaestroTipoTelefonoSOL(
				CoopacTipoMaestro tipoMaestroTipoTelefonoSOL) {
			this.tipoMaestroTipoTelefonoSOL = tipoMaestroTipoTelefonoSOL;
		}

		public IUbigeoService getUbigeoService() {
			return ubigeoService;
		}

		public void setUbigeoService(IUbigeoService ubigeoService) {
			this.ubigeoService = ubigeoService;
		}

		public CoopacUbigeo getUbigeoPersonaSOL() {
			return ubigeoPersonaSOL;
		}

		public void setUbigeoPersonaSOL(CoopacUbigeo ubigeoPersonaSOL) {
			this.ubigeoPersonaSOL = ubigeoPersonaSOL;
		}

		public Date getFechaNacimientoFechaConstitucionPersonaSOL() {
			return fechaNacimientoFechaConstitucionPersonaSOL;
		}

		public void setFechaNacimientoFechaConstitucionPersonaSOL(
				Date fechaNacimientoFechaConstitucionPersonaSOL) {
			this.fechaNacimientoFechaConstitucionPersonaSOL = fechaNacimientoFechaConstitucionPersonaSOL;
		}

		public SimpleDateFormat getFormatoDeFecha2() {
			return formatoDeFecha2;
		}

		public void setFormatoDeFecha2(SimpleDateFormat formatoDeFecha2) {
			this.formatoDeFecha2 = formatoDeFecha2;
		}

		public String getDniBuscado() {
			return dniBuscado;
		}

		public void setDniBuscado(String dniBuscado) {
			this.dniBuscado = dniBuscado;
		}

		public String getSocioBuscado() {
			return socioBuscado;
		}

		public void setSocioBuscado(String socioBuscado) {
			this.socioBuscado = socioBuscado;
		}

		public CoopacTipoMaestro getTipoMaestroTipoViviendaSOL() {
			return tipoMaestroTipoViviendaSOL;
		}

		public void setTipoMaestroTipoViviendaSOL(
				CoopacTipoMaestro tipoMaestroTipoViviendaSOL) {
			this.tipoMaestroTipoViviendaSOL = tipoMaestroTipoViviendaSOL;
		}

		public CoopacTipoMaestro getTipoMaestroTipoZonaSOL() {
			return tipoMaestroTipoZonaSOL;
		}

		public void setTipoMaestroTipoZonaSOL(CoopacTipoMaestro tipoMaestroTipoZonaSOL) {
			this.tipoMaestroTipoZonaSOL = tipoMaestroTipoZonaSOL;
		}

		public CoopacTipoMaestro getTipoMaestroTipoViaSOL() {
			return tipoMaestroTipoViaSOL;
		}

		public void setTipoMaestroTipoViaSOL(CoopacTipoMaestro tipoMaestroTipoViaSOL) {
			this.tipoMaestroTipoViaSOL = tipoMaestroTipoViaSOL;
		}

		public CoopacPersona getPersonaBEN() {
			return personaBEN;
		}

		public void setPersonaBEN(CoopacPersona personaBEN) {
			this.personaBEN = personaBEN;
		}

		public CoopacDocumentoPersona getDocumentoPersonaBEN() {
			return documentoPersonaBEN;
		}

		public void setDocumentoPersonaBEN(CoopacDocumentoPersona documentoPersonaBEN) {
			this.documentoPersonaBEN = documentoPersonaBEN;
		}

		public CoopacTelefonoPersona getTelefonoPersonaBEN() {
			return telefonoPersonaBEN;
		}

		public void setTelefonoPersonaBEN(CoopacTelefonoPersona telefonoPersonaBEN) {
			this.telefonoPersonaBEN = telefonoPersonaBEN;
		}

		public CoopacDireccionPersona getDireccionPersonaBEN() {
			return direccionPersonaBEN;
		}

		public void setDireccionPersonaBEN(CoopacDireccionPersona direccionPersonaBEN) {
			this.direccionPersonaBEN = direccionPersonaBEN;
		}

		public CoopacTipoMaestro getTipoMaestroDocumentoBEN() {
			return tipoMaestroDocumentoBEN;
		}

		public void setTipoMaestroDocumentoBEN(CoopacTipoMaestro tipoMaestroDocumentoBEN) {
			this.tipoMaestroDocumentoBEN = tipoMaestroDocumentoBEN;
		}

		public CoopacTipoMaestro getTipoMaestroEstadoCivilBEN() {
			return tipoMaestroEstadoCivilBEN;
		}

		public void setTipoMaestroEstadoCivilBEN(
				CoopacTipoMaestro tipoMaestroEstadoCivilBEN) {
			this.tipoMaestroEstadoCivilBEN = tipoMaestroEstadoCivilBEN;
		}

		public CoopacTipoMaestro getTipoMaestroGradoEstudioBEN() {
			return tipoMaestroGradoEstudioBEN;
		}

		public void setTipoMaestroGradoEstudioBEN(
				CoopacTipoMaestro tipoMaestroGradoEstudioBEN) {
			this.tipoMaestroGradoEstudioBEN = tipoMaestroGradoEstudioBEN;
		}

		public CoopacTipoMaestro getTipoMaestroTipoTelefonoBEN() {
			return tipoMaestroTipoTelefonoBEN;
		}

		public void setTipoMaestroTipoTelefonoBEN(
				CoopacTipoMaestro tipoMaestroTipoTelefonoBEN) {
			this.tipoMaestroTipoTelefonoBEN = tipoMaestroTipoTelefonoBEN;
		}

		public CoopacTipoMaestro getTipoMaestroTipoViviendaBEN() {
			return tipoMaestroTipoViviendaBEN;
		}

		public void setTipoMaestroTipoViviendaBEN(
				CoopacTipoMaestro tipoMaestroTipoViviendaBEN) {
			this.tipoMaestroTipoViviendaBEN = tipoMaestroTipoViviendaBEN;
		}

		public CoopacTipoMaestro getTipoMaestroTipoZonaBEN() {
			return tipoMaestroTipoZonaBEN;
		}

		public void setTipoMaestroTipoZonaBEN(CoopacTipoMaestro tipoMaestroTipoZonaBEN) {
			this.tipoMaestroTipoZonaBEN = tipoMaestroTipoZonaBEN;
		}

		public CoopacTipoMaestro getTipoMaestroTipoViaBEN() {
			return tipoMaestroTipoViaBEN;
		}

		public void setTipoMaestroTipoViaBEN(CoopacTipoMaestro tipoMaestroTipoViaBEN) {
			this.tipoMaestroTipoViaBEN = tipoMaestroTipoViaBEN;
		}

		public CoopacUbigeo getUbigeoPersonaBEN() {
			return ubigeoPersonaBEN;
		}

		public void setUbigeoPersonaBEN(CoopacUbigeo ubigeoPersonaBEN) {
			this.ubigeoPersonaBEN = ubigeoPersonaBEN;
		}

		public CoopacUbigeo getUbigeoPersonaBENDep() {
			return ubigeoPersonaBENDep;
		}

		public void setUbigeoPersonaBENDep(CoopacUbigeo ubigeoPersonaBENDep) {
			this.ubigeoPersonaBENDep = ubigeoPersonaBENDep;
		}

		public CoopacUbigeo getUbigeoPersonaBENPro() {
			return ubigeoPersonaBENPro;
		}

		public void setUbigeoPersonaBENPro(CoopacUbigeo ubigeoPersonaBENPro) {
			this.ubigeoPersonaBENPro = ubigeoPersonaBENPro;
		}

		public CoopacUbigeo getUbigeoPersonaBENDis() {
			return ubigeoPersonaBENDis;
		}

		public void setUbigeoPersonaBENDis(CoopacUbigeo ubigeoPersonaBENDis) {
			this.ubigeoPersonaBENDis = ubigeoPersonaBENDis;
		}
		
		
		
		// Agregar Personas Mancomunadas
		
		List<CoopacPersona> mancomunados = new ArrayList<CoopacPersona>();
		CoopacPersona mancomunado = new CoopacPersona();
		CoopacDocumentoPersona documentoPersonaAgregada = new CoopacDocumentoPersona();
		
		
		
		public List<CoopacPersona> getMancomunados() {
			return mancomunados;
		}


		public void setMancomunados(List<CoopacPersona> mancomunados) {
			this.mancomunados = mancomunados;
		}


		public CoopacPersona getMancomunado() {
			return mancomunado;
		}


		public void setMancomunado(CoopacPersona mancomunado) {
			this.mancomunado = mancomunado;
		}
		
		
		
		
		public CoopacDocumentoPersona getDocumentoPersonaAgregada() {
			return documentoPersonaAgregada;
		}


		public void setDocumentoPersonaAgregada(
				CoopacDocumentoPersona documentoPersonaAgregada) {
			this.documentoPersonaAgregada = documentoPersonaAgregada;
		}


		public void ListarMancomunados(){
			
			mancomunados.add(personaBEN);
			documentoPersonaAgregada = documentoPersonaBEN;
		}
		
		
		
		
}
